+=++++++++************************+*++++++++++++=--::::--:  :#####***
=====++++++++===+++++++++++++++++++++======+++++=---=:::-. .-+++++==*
======================--------=----------==+++==-:-*=.=+..:*=:++++==+
----------========++++==============--===--=+*--:+*#*+#+-=#+.:+-===+*
*****####################%###*******************************++***+**#
**########################*************###***************************
%##%%%#%%##%%%####%####****************##****************************
#############**###*****************#**####**************************#
##%%%%#####%#####**************#*=***####***##**********************#
%%%########***#***************#***###*##***#*****#******************#
*************##***************###*######*****#**####****************#
##*********##*********************###*******#########***************#
#********####*******#**************#****#########***######********###
********###**********************#**+************************########
#**##*###****************************+************##***##***#########
#*##*************#****************#***+*#********####################
*******#**************************##***+********#####******##########
***********************************#***+*****************##########*#
*****************************###***#****++**********#***#########***#
##*********####********************##****+*****************######***#
#*******######****##*****###********#*****+*********####***#######**#
#*******#####***********************##*****+************###########*#
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###%%%##%###%%%###%%%%%%%%%%%%%%%%%%